package gui;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Iterator;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

import pracownik.Pracownik;

import net.miginfocom.swing.MigLayout;
import zadanie.Zadanie;

public class PrzydzielZadanie extends JFrame{
    private int idZadania;
    private MigLayout layout;
    private static JPanel panelGlowny;
    private JPanel oneTaskRow;
    public PrzydzielZadanie(int nr, JPanel oneTaskRow){
        idZadania = nr;
        this.oneTaskRow = oneTaskRow;
        this.setTitle("Zadanie numer: " + idZadania);
        layout = new MigLayout();
        
        
        initComponents();
        this.add(panelGlowny);
        this.setVisible(true);
        this.setSize(500,600);
        this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);  
        this.setLocation(100, 100);
        
    }    

    
        
    
    private JPanel workerRow(final int id, final String imie, final String nazwisko) {
        JPanel oneWorkerRow = new JPanel();
        JButton bPrzydziel = new JButton("Przydziel");
        bPrzydziel.addActionListener(new ActionListener(){
            
            public void actionPerformed(ActionEvent e) {
                Pracownik.przydzielZadanie(idZadania, id);
               // PageZadanie.refreshShowTasks();
                JOptionPane.showMessageDialog(null, "Zadanie przydzielono pracownikowi.", 
                        "Przydzielanie zadania.",
                        JOptionPane.INFORMATION_MESSAGE); 
                ZadanieInfo.refreshWorker(oneTaskRow, imie+nazwisko);
            }
        });      
        
        
        oneWorkerRow.setBackground(new Color(255,255,255));
        oneWorkerRow.setLayout(new MigLayout());
        oneWorkerRow.setMinimumSize(new Dimension(612,30));
        JLabel idL = new JLabel(Integer.toString(id));
        idL.setFont(new Font(("TimesRoman"), Font.BOLD, 12));
        idL.setMinimumSize(new Dimension(30,15));
        
        JLabel imieL = new JLabel(imie);
        imieL.setMaximumSize(new Dimension(100,15));
        imieL.setMinimumSize(new Dimension(110,15));
        JLabel nazwiskoL = new JLabel(nazwisko);
        nazwiskoL.setMaximumSize(new Dimension(100,15));
        nazwiskoL.setMinimumSize(new Dimension(110,15));
        JLabel lPunkty = new JLabel(Integer.toString(Pracownik.getPunkty(id)));
        lPunkty.setMinimumSize(new Dimension(50,15));
        oneWorkerRow.add(idL);
        oneWorkerRow.add(imieL);
        oneWorkerRow.add(nazwiskoL);
        oneWorkerRow.add(lPunkty);
        oneWorkerRow.add(bPrzydziel);
        return oneWorkerRow;
    }
    
    private void initComponents(){
        panelGlowny = new JPanel();
        panelGlowny.setLayout(layout);
        
        
        ArrayList<Pracownik> workers = Pracownik.pokazPracownikow(0);
        ArrayList<JPanel> workersPanel = new ArrayList<JPanel>();
        
    
        /*
         * Dodanie zadan do petli
         */    
    
        for (Pracownik worker : workers) {
                if(worker.pokazStanowisko() != 2) workersPanel.add(workerRow(worker.pokazId(), worker.pokazImie(), worker.pokazNazwisko()));
        }
    
        Iterator<JPanel> itr = workersPanel.iterator();
        while (itr.hasNext()) {
          JPanel worker = itr.next();
          panelGlowny.add(worker, "wrap");
        }
    }
}
